package com.syh.jn.scm.domain.supplier.entity.base;

import cn.redscarf.commons.util.bean.ExtBeanUtils;
import cn.redscarf.commons.util.other.ExtAssert;
import cn.redscarf.commons.util.validator.ValidationUtils;
import com.syh.jn.scm.domain.support.SuperBusinessAggregate;
import com.syh.jn.scm.dto.supplier.base.supplierAddress.SupplierAddressMto;
import com.syh.jn.scm.dto.supplier.base.supplierAddress.SupplierAddressSto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 * 服务商地址
 */
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SupplierAddress extends SuperBusinessAggregate<Long> {
  /**
   * 地址省 市 区
   */
  private String area;
  /**
   * 地址
   */
  private String address;
  /**
   * 地区编号
   */
  private String areaCode;
  /**
   * 联系人
   */
  private String contacts;
  /**
   * 职务
   */
  private String duties;
  /**
   * 部门
   */
  private String department;
  /**
   * 联系手机
   */
  private String mobile;

  /**
   * 新增
   *
   * @param sto
   */
  public SupplierAddress(SupplierAddressSto sto) {
    ExtAssert.notNull(sto, "对象为空");
    ValidationUtils.validate(sto);
    ExtBeanUtils.copyProperties(sto, this);
    this.initDefault();
  }

  /**
   * 修改
   *
   * @param mto
   */
  public void modify(SupplierAddressMto mto) {
    ExtAssert.notNull(mto, "对象为空");
    ValidationUtils.validate(mto);
    ExtBeanUtils.copyProperties(mto, this, false);
    this.lastUpdateTimeStamp = System.currentTimeMillis();
  }

  /**
   * 数据销毁
   */
  public void destroy() {
  }
}
